package bsh.dyn;

import java.util.Collection;

/**
 * Represents a target of a method invocation.
 * 
 * @author takeshi
 */
public interface InvocationTarget {

    /**
     * Returns a collection with methods with the given name that are public
     * 
     * @param name String
     * @return {@link Collection} of {@link Invocable}
     */
    Collection<? extends Invocable> methodsWithName(String name);

    /**
     * Returns a {@link Collection} of all public constructors
     * 
     * @return {@link Collection} of {@link Invocable}
     */
    Collection<? extends Invocable> getConstructors();

}
